package com.wmb.userservice.service;

import com.wmb.userservice.model.dto.LoginUserDTO;
import com.wmb.userservice.model.dto.UserPageDTO;
import com.wmb.userservice.model.pojo.User;
import com.wmb.userservice.model.vo.LoginUserVO;
import com.wmb.userservice.utils.PageResult;
import com.wmb.userservice.utils.Result;

public interface UserService {

    /**
     * 根据用户id查询用户信息
     * @param userId
     * @return
     */
     Result<User> getUserById(Long userId);

    /**
     * 登录
     *
     * @param loginUserDTO
     * @return
     */
     Result<LoginUserVO> login(LoginUserDTO loginUserDTO);

     /**
     * 注册
     *
     * @param user
     * @return
     */
     Result<User> register(User user);

    /**
     * 分页查询用户信息
     * @param userPageDTO
     * @return
     */
     Result<PageResult> pageQuery(UserPageDTO userPageDTO);

     /**
     * 修改用户信息
     * @param user
     * @return
     */
    Result<User> updateUser(User user);

    /**
     * 重置密码
     * @param userId
     * @return
     */
    Result<User> resetPassword(Long userId);

    /**
     * 修改用户权限 -- superAdmin专用
     * @param userId
     * @param userNewRoleId
     * @return
     */
    Result alterUserPermissionByUserId(Long userId, String userNewRoleId);
}
